HI

[Encerrado] Golden Arena Pda

Por Hikigaya, 19 de out. de 2012 em Tópicos Sem Resposta

48
7.6k
Session StartS
27 de outubro de 2012 às 12:35

É não, porque a 1° wave ele vai..e é igual o resto ;s

Yan OliveiraY
27 de outubro de 2012 às 12:38

Vc n mexeu em nada n, ou n eskeceu de coloca return true ou end em algum script?

Session StartS
27 de outubro de 2012 às 12:43

Nem mexi na golden arena ;/

xarmaxX
27 de outubro de 2012 às 13:18

Cleberadm, tira os shinys de rank( golem, vaporeon, etc) e shinys sem corpos como hitmonlee e chan. Eu tirei os meus e deu certo, testa ae tb!

victormoazV
27 de outubro de 2012 às 13:26

/\

 

O problema é exatamente esse.

O Script tenta remover os corpse para a proxima wave... mas como No seu Script @Cleberadm tem o shiny golem que não tem corpse.

Oscript buga =D

Session StartS
27 de outubro de 2012 às 13:27

Estoue sperando, 12:33 vai começa, veremos G,G ' tomara que funcione o///

 

Ai vai resolve muitos problemas :|

Funcionou G.G vle ae galera o//

Editado Outubro 27 por Cleberadm

SlicerS
27 de outubro de 2012 às 13:54

na verdade n tem nd a ver o poke n ter corpse, ja q o script limpa o tile, ele n pega por corpse...

eh bem estranhu isso na real.. ;x a n ser q os pokes sem corpse n tao entrando no pokeexp.lua... ;x

27 de outubro de 2012 às 14:35

aqui não funfo assim.. da a wave 1 eu mato tudo e da ok aparece que vai começa em 30seg e na segunda se não me engano eu mato e não aparece mais nada e fico la parado sem apaga os corpo e sem msg e sem respaw dos bixo..

 

tentei executa o script pelo sqlite e deu o seguinte erro : Error while executing query: near "timeToWaves": syntax error

Session StartS
27 de outubro de 2012 às 14:38

Criou a tabela no sql?

27 de outubro de 2012 às 14:59

eu colokei o script que fica no lib/configuration o inteiro da golden arena ai deu o erro que eu falei la em cima.. (obs: eu colokei o script e executei)

 

agora deu certo eu só colokei o script no sqlite e apagei o 30 do timewaves e colokei 30 dnv e deu certim vlws

Editado Outubro 27 por MasterDarkness

SlicerS
27 de outubro de 2012 às 15:39

LOL? /\

q q tem a ver o sqlite com a golden, sem ser o rank... o.O

xarmaxX
29 de outubro de 2012 às 11:21

a golden aki ta quase 100%, so ta faltando o player ganhar o premio e ser teleportado pra fora da golden e ganhar o premio.

 

explicando: os horarios tão 100%, o player é puxado pra arena 100%, 15 waves aparecendo 100%, porem quando acaba as waves, o player fica preso na arena e não recebe o premio. Obs: a posição de tp da arena(posBackGolden) ta certa. Ae vai os scripts pra quem souber arrumar:

 

data/lib/ configuration.lua

 

posGolden = {x=1227, y=1118, z=6} --pos da golden pra onde os players vao ser teleportados!

posBackGolden = {x=1231, y=1113, z=7} --pos da golden pra onde os players vao ser teleportados ao morrerem e quando acabar a golden...

---------

horas = {"0:40", "9:40", "11:45", "17:00", "21:55"} --alterar aki os horarios da golden arena!

--deixe sempre na ordem do menor pro maior horario!!!

--------

posisGolden = {

{x=1220, y=1115, z=6},

{x=1227, y=1118, z=6},

{x=1233, y=1115, z=6},

{x=1220, y=1121, z=6}, --aki vcs colocam todas as posiçoes q os monstros vao nascer dentro da golden arena...

{x=1233, y=1121, z=6}, --lembrando q o numero de posis q vcs colocarem tem q ser igual ao numero de pokes q vcs vao colocar ali embaixo!

{x=1220, y=1118, z=6},

{x=1233, y=1118, z=6},

{x=1227, y=1115, z=6}, --LEMBRANDO Q AGORA N PRECISA MAIS EDITAR MAIS NENHUM SCRIPT A N SER ESSE!!

{x=1227, y=1121, z=6}, --E O GLOBALEVENTS/GLOBALEVENTS.XML COM OS HORARIOS!

}

----------

wavesGolden = { --waves q vao ter na golden arena... o numero de pokes tem q ser igual ao numero de posis!!

[1] = {"Golduck", "Persian", "Venomoth", "Parasect", "Wigglytuff", "Clefable", "Nidoking", "Sandslash", "Raichu"},

[2] = {"Raticate", "Muk", "Primeape", "Magneton", "Tentacruel", "Victreebel", "Machamp", "Poliwrath", "Arcanine"},

[3] = {"Shiny Dratini", "Exeggutor", "Alakazam", "Gengar", "Onix", "Hypno", "Mr. Mime", "Cloyster", "Dewgong"},

[4] = {"Shiny Seadra", "Shiny Kingler", "Electabuzz", "Jynx", "Scyther", "Kangaskhan", "Rhydon", "Weezing", "Marowak"},

[5] = {"Shiny Raichu", "Shiny Beedrill", "Venusaur", "Charizard", "Blastoise", "Gyarados", "Kabutops", "Omastar", "Magmar"},

[6] = {"Shiny Butterfree", "Shiny Marowak", "Shiny Farfetch'd", "Feraligatr", "Typhlosion", "Meganium", "Dragonite", "Snorlax", "Golem"},

[7] = {"Shiny Abra", "Shiny Pinsir", "Shiny Blastoise", "Ampharos", "Xatu", "Togetic", "Lanturn", "Crobat", "Noctowl"},

[8] = {"Shiny Jynx", "Shiny Venusaur", "Shiny Electabuzz", "Slowking", "Murkrow", "Umbreon", "Espeon", "Politoed", "Sudowoodo"},

[9] = {"Shiny Muk", "Shiny Tangela", "Shiny Charizard", "Granbull", "Steelix", "Gligar", "Forretress", "Wobbuffet", "Misdreavus"},

[10] = {"Shiny Raichu", "Shiny Dragonair", "Shiny Pidgeot", "Shiny Beedrill", "Piloswine", "Sneasel", "Heracross", "Scizor", "Qwilfish"},

[11] = {"Shiny Parasect", "Shiny Muk", "Shiny Electrode", "Shiny Golbat", "Shiny Arcanine", "Donphan", "Kingdra", "Skarmory", "Mantine"},

[12] = {"Shiny Onix", "Shiny Farfetch'd", "Shiny Tentacruel", "Shiny Abra", "Shiny Arcanine", "Shiny Venomoth", "Blissey", "Miltank", "Porygon2"},

[13] = {"Shiny Marowak", "Shiny Electrode", "Shiny Kingler", "Shiny Pinsir", "Shiny Venusaur", "Shiny Venomoth", "Shiny Tentacruel", "Snorlax", "Ursaring"},

[14] = {"Shiny Dragonair", "Shiny Scyther", "Shiny Gengar", "Tyranitar", "Shiny Pinsir", "Shiny Seadra", "Shiny Jynx", "Shiny Tangela", "Tyranitar"},

[15] = {"Shiny Venussaur", "Shiny Gyarados", "Shiny Blastoise", "Shiny Charizard", "Shiny Scyther", "Mew", "Mewtwo", "Shiny Gengar", "Shiny Alakazam"}, --o numero de espaços na tabela tem q ser o ms do numero de posis!!!

}

 

 

data/lib/Golden Arena.lua

 

--[[storages

22545 = player q entra na arena (normal)

22546 = monstros na arena (normal)

22547 = waves (global)

22548 = qnts monstros tem na arena (global)

22549 = nome dos players q vao pra arena (global)

22550 = qnts players tem na arena (global)

22551 = waves para cada player (normal)

]]

------------------------------------------------------------------------------------------------------------------

function doWave(start)

if getGlobalStorageValue(22550) >= 1 and getGlobalStorageValue(22548) <= 0 then

local wave = getGlobalStorageValue(22547) <= 0 and 1 or getGlobalStorageValue(22547)

local players = creaturesInGolden(GoldenUpper, GoldenLower, true) --pega os players na golden

for i = 1, #posisGolden do

if wavesGolden[wave] ~= "" then

local monster = doSummonCreature(wavesGolden[wave], posisGolden)

doSetMonsterPassive(monster)

doWildAttackPlayer(monster, players[math.random(#players)])

doSendMagicEffect(getThingPos(monster), 21)

setPlayerStorageValue(monster, 22546, 1)

local sto = getGlobalStorageValue(22548) <= 0 and 0 or getGlobalStorageValue(22548)

setGlobalStorageValue(22548, sto+1)

end

end

for a = 1, #players do

setPlayerStorageValue(players[a], 22551, wave)

end

setGlobalStorageValue(22547, wave+1)

end

end

------------------------------------------------------------------------------------------------------------------

function puxaParticipantes()

local s = ""

if getGlobalStorageValue(22549) ~= -1 then

s = string.explode(getGlobalStorageValue(22549), ",")

end

 

if type(s) ~= 'table' or s == "" then

print("Golden Arena will not begin, because no player are registered!")

return true

end

 

for i = 1, #s do

local sid = getPlayerByName(s)

if isCreature(sid) then

doTeleportThing(sid, getClosestFreeTile(sid, posGolden)) --pos pra onde os players vao ser teleportados quando a golden começar!

doSendMagicEffect(getThingPos(sid), 21)

if #getCreatureSummons(sid) >= 1 then

doTeleportThing(getCreatureSummons(sid)[1], getClosestFreeTile(getCreatureSummons(sid)[1], posGolden)) --pos pra onde os pokes dos players serao teleportados!

doSendMagicEffect(getThingPos(getCreatureSummons(sid)[1]), 21)

end

setPlayerStorageValue(sid, 22545, 1)

setGlobalStorageValue(22550, (getGlobalStorageValue(22550) <= 0 and 0 or getGlobalStorageValue(22550))+1)

end

end

setGlobalStorageValue(22549, -1)

end

------------------------------------------------------------------------------------------------------------------

function endGoldenArena(onStart)

for sto = 22547, 22550 do

setGlobalStorageValue(sto, -1)

end

addEvent(creaturesInGolden, 150, GoldenUpper, GoldenLower, false, true, true)

if not onStart then

print("The Golden Arena are finished!")

end

end

------------------------------------------------------------------------------------------------------------------

function creaturesInGolden(upper, lower, player, remove, clean) -- function by Vodkart and edited by Slicer

local players = {}

for x = upper.x - 1, lower.x + 1 do

for y = upper.y - 1, lower.y + 1 do

local pos = {x = x, y = y, z = upper.z}

local m = getTopCreature(pos).uid

if remove ~= false and m ~= 0 and ehMonstro(m) then doRemoveCreature(m) end

if clean ~= false then doCleanTile(pos, false) end

if player ~= false and m ~= 0 and isPlayer(m) and getPlayerStorageValue(m, 22545) == 1 then table.insert(players, m) end

end

end

if player ~= false then return players end

end

------------------------------------------------------------------------------------------------------------------

function installRankGolden()

if db.executeQuery("ALTER TABLE `players` ADD `Golden` integer not null default 0;") then

if db.executeQuery("UPDATE `players` SET `Golden` = '10000' WHERE `id` = 1;") then

local dir = "data/globalevents/scripts/start.lua"

local arq = io.open(dir, "w")

local base = 'function onStartup()\n\ndb.executeQuery("UPDATE `players` SET `online` = 0 WHERE `world_id` = " .. getConfigValue("worldId") .. ";")\n'

base = base..'endGoldenArena(true)\n\nreturn true\nend'

arq:write(base)

arq:close()

 

print("Table 'Golden' added with success!")

end

end

return true

end

------------------------------------------------------------------------------------------------------------------

function getPlayerRecordWaves(cid)

if not isCreature(cid) then return 0 end

local pid = getPlayerGUID(cid)

local query = db.getResult("SELECT `Golden` FROM `players` WHERE `id` = "..pid..";")

 

if query:getID() == -1 then

return 0

end

return query:getDataInt("Golden")

end

------------------------------------------------------------------------------------------------------------------

function setPlayerRecordWaves(cid)

if not isCreature(cid) then return false end

local waves = getPlayerStorageValue(cid, 22551)

local acc = getPlayerGUID(cid)

if waves > getPlayerRecordWaves(cid) then

if db.executeQuery("UPDATE `players` SET `Golden` = '"..waves.."' WHERE `id` = "..acc..";") then

setPlayerStorageValue(cid, 22551, -1)

return true

end

end

return false

end

------------------------------------------------------------------------------------------------------------------

function getRankGolden()

local query = db.getResult("SELECT `id`, `Golden` FROM `players` ORDER BY `Golden` DESC;")

local str = "Rank of the Golden Arena:\n\n"

 

if query:getID() ~= -1 then

for i = 1, 10 do

if not(query:next()) or query:getDataInt("Golden") == 0 then

str = str..""..i.."° None - 0 wave.\n"

else

local s = tonumber(query:getDataInt("Golden")) > 1 and "s" or ""

str = str..""..i.."° "..getPlayerNameByGUID(query:getDataString("id")).." - "..query:getDataInt("Golden").." wave"..s..".\n"

end

end

query:free()

end

return str

end

------------------------------------------------------------------------------------------------------------------

 

 

e finalmente data/creaturescripts/scripts/pokeexp

 

 

if getPlayerStorageValue(cid, 22546) == 1 then

setGlobalStorageValue(22548, getGlobalStorageValue(22548)-1)

doItemSetAttribute(corpse.uid, "golden", 1)

end

if getPlayerStorageValue(cid, 22546) == 1 and getGlobalStorageValue(22548) <= 0 then

local wave = getGlobalStorageValue(22547)

for _, sid in ipairs(getPlayersOnline()) do

if isPlayer(sid) and getPlayerStorageValue(sid, 22545) == 1 then

if getGlobalStorageValue(22547) < #wavesGolden+1 then

doPlayerSendTextMessage(sid, 21, "Wave "..wave.." will begin in "..timeToWaves.."seconds!")

doPlayerSendTextMessage(sid, 28, "Wave "..wave.." will begin in "..timeToWaves.."seconds!")

addEvent(creaturesInGolden, 100, GoldenUpper, GoldenLower, false, true, true)

addEvent(doWave, timeToWaves*1000)

elseif getGlobalStorageValue(22547) == #wavesGolden+1 then

doPlayerSendTextMessage(sid, 20, "You have win the golden arena! Take your reward!")

doPlayerAddItem(sid, 2152, getPlayerStorageValue(sid, 22551)*2) --recompensa, a storage ali eh qnts waves o player guento!

setPlayerStorageValue(sid, 22545, -1)

doTeleportThing(sid, getClosestFreeTile(sid, posBackGolden), false)

setPlayerRecordWaves(sid)

end

end

end

if getGlobalStorageValue(22547) == #wavesGolden+1 then

endGoldenArena()

end

end

 

Editado Outubro 29 por xarmax

29 de outubro de 2012 às 20:38

paro de funciona denovo se eu aumenta waves buga algo ?

 

bom eu entendo um pouco de script entaum assim que deu esse problema citado acima procurei corrigir, oque fiz para o script funcionar foi apenas executa-lo na query database.. como executa isso? abra o sqlite e add o database do seu server depois conecte ele, vá em open sql editor la em cima onde tem um lápis, depois você cola o script lá dentro e clique em execute query ou apenas aperte (F9), fiz isso com todos os scripts do golden arena e deu certo... '-' agora se isso der certo ah vcs' toda vez que mudar os bixos das waves tem que fazer esse procedimento em cima... BOA SORTE! se isto pegar me avise.

1 mês depois...
10 de novembro de 2012 às 18:08

o meu script ta igual o do xarmax

 

e nao ta puxando e ta dando um erro no executavel.

o fato de nao puxar pode ser porque é god ou nao?

dudu0014D
10 de novembro de 2012 às 18:18

Minha golden ta suavona, porém alguem sabe como faz para os pokemons da golden arena ao darem spawn, serem todos level 100 e com boost 20?